package com.ctshk.rpc.order.localfun.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.TokenUser;
import com.ctshk.common.vo.OrderRefundDTO;
import com.ctshk.rpc.order.localfun.dto.LocalFunOrderRefundListDTO;
import com.ctshk.rpc.order.localfun.req.LocalFunOrderRefundReq;
import com.ctshk.rpc.order.localfun.req.LocalFunOrderRefundUpdateReq;

import java.util.List;

/**
 * <p>
 * 门票退款记录 服务类
 * </p>
 *
 * @author 张志朋
 * @since 2021-02-24
 */
public interface ILocalFunOrderRefundService {

    /**
     * 订单操作退款记录
     *
     * @param scenicOrderRefundReq
     * @return ScenicOrderRefundListDTO
     */
    Result<List<LocalFunOrderRefundListDTO>> list(LocalFunOrderRefundReq scenicOrderRefundReq);

    /**
     * 退款记录 (财务-内部调用)
     * @param orderId
     * @return
     */
    Result<List<OrderRefundDTO>> refundRecords(Long orderId);

    /**
     * 订单操作 - 退款记录 - 操作退款
     *
     * @param  scenicOrderRefundUpdateReq
     * @return Long
     */
    Result<Long> refund(LocalFunOrderRefundUpdateReq scenicOrderRefundUpdateReq, TokenUser tokenUser);


    /**
     * 确认退款(财务-内部调用)
     * @param refundNumber
     * @return
     */
    Result confirmRefund(String refundNumber, Long userId);
}
